﻿namespace FFF.Test.Entity.WX.Dto
{
    using System;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using Abp.Application.Services.Dto;
    using Abp.AutoMapper;
    using FFF.Test.Entity.Framework.Dto;
    using FFF.Test.Entity.WX.View;       

	/// <summary>
    /// 微信支付订单表展示时候的dto
    /// </summary>
	[AutoMapFrom(typeof(WXPayOrderEntity))] 
    public partial class WXPayOrderDto :  BaseEntityDto<Guid>
    {
		/// <summary>
        /// 微信分配的公众账号ID(wxd678efh567hg6787)
        /// </summary>
		[Display(Name = "微信分配的公众账号ID(wxd678efh567hg6787)", Description = "微信分配的公众账号ID(wxd678efh567hg6787)")]
        [Column("AppId")]
		[StringLength(32)]
        public string AppId { get; set; }
        
		/// <summary>
        /// 微信支付分配的商户号(1230000109)
        /// </summary>
		[Display(Name = "微信支付分配的商户号(1230000109)", Description = "微信支付分配的商户号(1230000109)")]
        [Column("MchId")]
		[StringLength(32)]
        public string MchId { get; set; }
        
		/// <summary>
        /// 小程序的APPID
        /// </summary>
		[Display(Name = "小程序的APPID", Description = "小程序的APPID")]
        [Column("SubAppId")]
		[StringLength(32)]
        public string SubAppId { get; set; }
        
		/// <summary>
        /// 子商户号(微信支付分配的子商户号)
        /// </summary>
		[Display(Name = "子商户号(微信支付分配的子商户号)", Description = "子商户号(微信支付分配的子商户号)")]
        [Column("SubMchId")]
		[StringLength(32)]
        public string SubMchId { get; set; }
        
		/// <summary>
        /// 设备号(终端设备号(门店号或收银设备ID)，注意：PC网页或公众号内支付请传'WEB')
        /// </summary>
		[Display(Name = "设备号(终端设备号(门店号或收银设备ID)，注意：PC网页或公众号内支付请传'WEB')", Description = "设备号(终端设备号(门店号或收银设备ID)，注意：PC网页或公众号内支付请传'WEB')")]
        [Column("DeviceInfo")]
		[StringLength(32)]
        public string DeviceInfo { get; set; }
        
		/// <summary>
        /// 随机字符串(随机字符串，不长于32位)
        /// </summary>
		[Display(Name = "随机字符串(随机字符串，不长于32位)", Description = "随机字符串(随机字符串，不长于32位)")]
        [Column("NonceStr")]
		[StringLength(32)]
        public string NonceStr { get; set; }
        
		/// <summary>
        /// 签名()
        /// </summary>
		[Display(Name = "签名()", Description = "签名()")]
        [Column("Sign")]
		[StringLength(32)]
        public string Sign { get; set; }
        
		/// <summary>
        /// 签名类型（签名类型，目前支持HMAC-SHA256和MD5，默认为MD5）
        /// </summary>
		[Display(Name = "签名类型（签名类型，目前支持HMAC-SHA256和MD5，默认为MD5）", Description = "签名类型（签名类型，目前支持HMAC-SHA256和MD5，默认为MD5）")]
        [Column("SignType")]
		[StringLength(32)]
        public string SignType { get; set; }
        
		/// <summary>
        /// 商品描述（商品简单描述，该字段须严格按照规范传递）
        /// </summary>
		[Display(Name = "商品描述（商品简单描述，该字段须严格按照规范传递）", Description = "商品描述（商品简单描述，该字段须严格按照规范传递）")]
        [Column("Body")]
		[StringLength(128)]
        public string Body { get; set; }
        
		/// <summary>
        /// 商品详情(商品详细描述，对于使用单品优惠的商户，该字段必须按照规范上传，详见)
        /// </summary>
		[Display(Name = "商品详情(商品详细描述，对于使用单品优惠的商户，该字段必须按照规范上传，详见)", Description = "商品详情(商品详细描述，对于使用单品优惠的商户，该字段必须按照规范上传，详见)")]
        [Column("Detail")]
		[StringLength(4000)]
        public string Detail { get; set; }
        
		/// <summary>
        /// 附加数据(附加数据，在查询API和支付通知中原样返回，该字段主要用于商户携带订单的自定义数据)
        /// </summary>
		[Display(Name = "附加数据(附加数据，在查询API和支付通知中原样返回，该字段主要用于商户携带订单的自定义数据)", Description = "附加数据(附加数据，在查询API和支付通知中原样返回，该字段主要用于商户携带订单的自定义数据)")]
        [Column("Attach")]
		[StringLength(128)]
        public string Attach { get; set; }
        
		/// <summary>
        /// 商户订单号(商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*且在同一个商户号下唯一)
        /// </summary>
		[Display(Name = "商户订单号(商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*且在同一个商户号下唯一)", Description = "商户订单号(商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*且在同一个商户号下唯一)")]
        [Column("OutTradeNo")]
		[StringLength(32)]
        public string OutTradeNo { get; set; }
        
		/// <summary>
        /// 货币类型(符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见)
        /// </summary>
		[Display(Name = "货币类型(符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见)", Description = "货币类型(符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见)")]
        [Column("FeeType")]
		[StringLength(32)]
        public string FeeType { get; set; }
        
		/// <summary>
        /// 总金额
        /// </summary>
		[Display(Name = "总金额", Description = "总金额")]
        [Column("TotalFee")]
        public int? TotalFee { get; set; }
        
		/// <summary>
        /// 终端IP（支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP）
        /// </summary>
		[Display(Name = "终端IP（支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP）", Description = "终端IP（支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP）")]
        [Column("SpbillCreateIp")]
		[StringLength(32)]
        public string SpbillCreateIp { get; set; }
        
		/// <summary>
        /// 交易起始时间(订单生成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010)
        /// </summary>
		[Display(Name = "交易起始时间(订单生成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010)", Description = "交易起始时间(订单生成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010)")]
        [Column("TimeStart")]
		[StringLength(32)]
        public string TimeStart { get; set; }
        
		/// <summary>
        /// 交易结束时间(订单失效时间，格式为yyyyMMddHHmmss，如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的，由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期，所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。)
        /// </summary>
		[Display(Name = "交易结束时间(订单失效时间，格式为yyyyMMddHHmmss，如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的，由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期，所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。)", Description = "交易结束时间(订单失效时间，格式为yyyyMMddHHmmss，如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的，由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期，所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。)")]
        [Column("TimeExpire")]
		[StringLength(32)]
        public string TimeExpire { get; set; }
        
		/// <summary>
        /// 订单优惠标记(订单优惠标记，代金券或立减优惠功能的参数)
        /// </summary>
		[Display(Name = "订单优惠标记(订单优惠标记，代金券或立减优惠功能的参数)", Description = "订单优惠标记(订单优惠标记，代金券或立减优惠功能的参数)")]
        [Column("GoodsTag")]
		[StringLength(32)]
        public string GoodsTag { get; set; }
        
		/// <summary>
        /// 通知地址(接收微信支付异步通知回调地址，通知url必须为直接可访问的url，不能携带参数。)
        /// </summary>
		[Display(Name = "通知地址(接收微信支付异步通知回调地址，通知url必须为直接可访问的url，不能携带参数。)", Description = "通知地址(接收微信支付异步通知回调地址，通知url必须为直接可访问的url，不能携带参数。)")]
        [Column("NotifyUrl")]
		[StringLength(256)]
        public string NotifyUrl { get; set; }
        
		/// <summary>
        /// 交易类型(小程序取值如下：JSAPI，详细说明见)
        /// </summary>
		[Display(Name = "交易类型(小程序取值如下：JSAPI，详细说明见)", Description = "交易类型(小程序取值如下：JSAPI，详细说明见)")]
        [Column("TradeType")]
		[StringLength(32)]
        public string TradeType { get; set; }
        
		/// <summary>
        /// 指定支付方式no_credit--指定不能使用信用卡支付
        /// </summary>
		[Display(Name = "指定支付方式no_credit--指定不能使用信用卡支付", Description = "指定支付方式no_credit--指定不能使用信用卡支付")]
        [Column("LimitPay")]
		[StringLength(32)]
        public string LimitPay { get; set; }
        
		/// <summary>
        /// 用户标识
        /// </summary>
		[Display(Name = "用户标识", Description = "用户标识")]
        [Column("OpenId")]
		[StringLength(32)]
        public string OpenId { get; set; }
        
		/// <summary>
        /// 用户子标识
        /// </summary>
		[Display(Name = "用户子标识", Description = "用户子标识")]
        [Column("SubOpenid")]
		[StringLength(32)]
        public string SubOpenid { get; set; }
        
		/// <summary>
        /// 电子发票入口开放标识（ Y，传入Y时，支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能，传此字段才可生效）
        /// </summary>
		[Display(Name = "电子发票入口开放标识（ Y，传入Y时，支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能，传此字段才可生效）", Description = "电子发票入口开放标识（ Y，传入Y时，支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能，传此字段才可生效）")]
        [Column("Receipt")]
		[StringLength(8)]
        public string Receipt { get; set; }
        
		/// <summary>
        /// 场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）', Description = '场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）
        /// </summary>
		[Display(Name = "场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）', Description = '场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）", Description = "场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）', Description = '场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）")]
        [Column("SceneInfo")]
		[StringLength(256)]
        public string SceneInfo { get; set; }
        
		/// <summary>
        /// 返回状态码
        /// </summary>
		[Display(Name = "返回状态码", Description = "返回状态码")]
        [Column("ReturnCode")]
		[StringLength(32)]
        public string ReturnCode { get; set; }
        
		/// <summary>
        /// 返回信息
        /// </summary>
		[Display(Name = "返回信息", Description = "返回信息")]
        [Column("ReturnMsg")]
		[StringLength(32)]
        public string ReturnMsg { get; set; }
        
		/// <summary>
        /// 预支付交易会话标识（微信生成的预支付回话标识，用于后续接口调用中使用，该值有效期为2小时）
        /// </summary>
		[Display(Name = "预支付交易会话标识（微信生成的预支付回话标识，用于后续接口调用中使用，该值有效期为2小时）", Description = "预支付交易会话标识（微信生成的预支付回话标识，用于后续接口调用中使用，该值有效期为2小时）")]
        [Column("PrepayId")]
		[StringLength(64)]
        public string PrepayId { get; set; }
        
		/// <summary>
        /// 二维码链接（trade_type=NATIVE时有返回，此url用于生成支付二维码，然后提供给用户进行扫码支付。）
        /// </summary>
		[Display(Name = "二维码链接（trade_type=NATIVE时有返回，此url用于生成支付二维码，然后提供给用户进行扫码支付。）", Description = "二维码链接（trade_type=NATIVE时有返回，此url用于生成支付二维码，然后提供给用户进行扫码支付。）")]
        [Column("CodeUrl")]
		[StringLength(64)]
        public string CodeUrl { get; set; }
        
		/// <summary>
        /// 微信订单号
        /// </summary>
		[Display(Name = "微信订单号", Description = "微信订单号")]
        [Column("TransactionId")]
		[StringLength(32)]
        public string TransactionId { get; set; }
        
		/// <summary>
        /// 商户退款单号
        /// </summary>
		[Display(Name = "商户退款单号", Description = "商户退款单号")]
        [Column("OutRefundNo")]
		[StringLength(32)]
        public string OutRefundNo { get; set; }
        
		/// <summary>
        /// 申请退款金额
        /// </summary>
		[Display(Name = "申请退款金额", Description = "申请退款金额")]
        [Column("RefundFee")]
        public int? RefundFee { get; set; }
        
		/// <summary>
        /// 退款原因
        /// </summary>
		[Display(Name = "退款原因", Description = "退款原因")]
        [Column("RefundDesc")]
		[StringLength(80)]
        public string RefundDesc { get; set; }
        
		/// <summary>
        /// 退款资金来源
        /// </summary>
		[Display(Name = "退款资金来源", Description = "退款资金来源")]
        [Column("RefundAccount")]
		[StringLength(80)]
        public string RefundAccount { get; set; }
        
		/// <summary>
        /// 是否关注公众账号
        /// </summary>
		[Display(Name = "是否关注公众账号", Description = "是否关注公众账号")]
        [Column("IsSubscribe")]
		[StringLength(32)]
        public string IsSubscribe { get; set; }
        
		/// <summary>
        /// 是否关注公众账号
        /// </summary>
		[Display(Name = "是否关注公众账号", Description = "是否关注公众账号")]
        [Column("SubIsSubscribe")]
		[StringLength(32)]
        public string SubIsSubscribe { get; set; }
        
		/// <summary>
        /// 微信支付状态 SUCCESS—支付成功 REFUND—转入退 NOTPAY—未支付 CLOSED—已关闭 REVOKED—已撤销（刷卡支付） USERPAYING--用户支付中 PAYERROR--支付失败(其他原因，如银行返回失败)
        /// </summary>
		[Display(Name = "微信支付状态 SUCCESS—支付成功 REFUND—转入退 NOTPAY—未支付 CLOSED—已关闭 REVOKED—已撤销（刷卡支付） USERPAYING--用户支付中 PAYERROR--支付失败(其他原因，如银行返回失败)", Description = "微信支付状态 SUCCESS—支付成功 REFUND—转入退 NOTPAY—未支付 CLOSED—已关闭 REVOKED—已撤销（刷卡支付） USERPAYING--用户支付中 PAYERROR--支付失败(其他原因，如银行返回失败)")]
        [Column("TradeState")]
		[StringLength(32)]
        public string TradeState { get; set; }
        
		/// <summary>
        /// 支付状态(1,未支付;2,支付成功;3,支付失败;4,关闭;5,退款)
        /// </summary>
		[Display(Name = "支付状态(1,未支付;2,支付成功;3,支付失败;4,关闭;5,退款)", Description = "支付状态(1,未支付;2,支付成功;3,支付失败;4,关闭;5,退款)")]
        [Column("PayOrderState")]
        public WXPayOrderPayOrderStateEnum? PayOrderState { get; set; }
        
		/// <summary>
        /// 支付失败消息
        /// </summary>
		[Display(Name = "支付失败消息", Description = "支付失败消息")]
        [Column("PayOrderError")]
		[StringLength(1024)]
        public string PayOrderError { get; set; }
        
    }
    
    /// <summary>
    /// 微信支付订单表新增时候的dto
    /// </summary>
	[AutoMap(typeof(WXPayOrderEntity))]
    [AutoMapFrom(typeof(ViewWXPayOrder))] 
    public partial class WXPayOrderCreateInputDto : BaseEntityDto<Guid>
    {
		/// <summary>
        /// 微信分配的公众账号ID(wxd678efh567hg6787)
        /// </summary>
		[Display(Name = "微信分配的公众账号ID(wxd678efh567hg6787)", Description = "微信分配的公众账号ID(wxd678efh567hg6787)")]
        [Column("AppId")]
		[StringLength(32)]
        public string AppId { get; set; }
        
		/// <summary>
        /// 微信支付分配的商户号(1230000109)
        /// </summary>
		[Display(Name = "微信支付分配的商户号(1230000109)", Description = "微信支付分配的商户号(1230000109)")]
        [Column("MchId")]
		[StringLength(32)]
        public string MchId { get; set; }
        
		/// <summary>
        /// 小程序的APPID
        /// </summary>
		[Display(Name = "小程序的APPID", Description = "小程序的APPID")]
        [Column("SubAppId")]
		[StringLength(32)]
        public string SubAppId { get; set; }
        
		/// <summary>
        /// 子商户号(微信支付分配的子商户号)
        /// </summary>
		[Display(Name = "子商户号(微信支付分配的子商户号)", Description = "子商户号(微信支付分配的子商户号)")]
        [Column("SubMchId")]
		[StringLength(32)]
        public string SubMchId { get; set; }
        
		/// <summary>
        /// 设备号(终端设备号(门店号或收银设备ID)，注意：PC网页或公众号内支付请传'WEB')
        /// </summary>
		[Display(Name = "设备号(终端设备号(门店号或收银设备ID)，注意：PC网页或公众号内支付请传'WEB')", Description = "设备号(终端设备号(门店号或收银设备ID)，注意：PC网页或公众号内支付请传'WEB')")]
        [Column("DeviceInfo")]
		[StringLength(32)]
        public string DeviceInfo { get; set; }
        
		/// <summary>
        /// 随机字符串(随机字符串，不长于32位)
        /// </summary>
		[Display(Name = "随机字符串(随机字符串，不长于32位)", Description = "随机字符串(随机字符串，不长于32位)")]
        [Column("NonceStr")]
		[StringLength(32)]
        public string NonceStr { get; set; }
        
		/// <summary>
        /// 签名()
        /// </summary>
		[Display(Name = "签名()", Description = "签名()")]
        [Column("Sign")]
		[StringLength(32)]
        public string Sign { get; set; }
        
		/// <summary>
        /// 签名类型（签名类型，目前支持HMAC-SHA256和MD5，默认为MD5）
        /// </summary>
		[Display(Name = "签名类型（签名类型，目前支持HMAC-SHA256和MD5，默认为MD5）", Description = "签名类型（签名类型，目前支持HMAC-SHA256和MD5，默认为MD5）")]
        [Column("SignType")]
		[StringLength(32)]
        public string SignType { get; set; }
        
		/// <summary>
        /// 商品描述（商品简单描述，该字段须严格按照规范传递）
        /// </summary>
		[Display(Name = "商品描述（商品简单描述，该字段须严格按照规范传递）", Description = "商品描述（商品简单描述，该字段须严格按照规范传递）")]
        [Column("Body")]
		[StringLength(128)]
        public string Body { get; set; }
        
		/// <summary>
        /// 商品详情(商品详细描述，对于使用单品优惠的商户，该字段必须按照规范上传，详见)
        /// </summary>
		[Display(Name = "商品详情(商品详细描述，对于使用单品优惠的商户，该字段必须按照规范上传，详见)", Description = "商品详情(商品详细描述，对于使用单品优惠的商户，该字段必须按照规范上传，详见)")]
        [Column("Detail")]
		[StringLength(4000)]
        public string Detail { get; set; }
        
		/// <summary>
        /// 附加数据(附加数据，在查询API和支付通知中原样返回，该字段主要用于商户携带订单的自定义数据)
        /// </summary>
		[Display(Name = "附加数据(附加数据，在查询API和支付通知中原样返回，该字段主要用于商户携带订单的自定义数据)", Description = "附加数据(附加数据，在查询API和支付通知中原样返回，该字段主要用于商户携带订单的自定义数据)")]
        [Column("Attach")]
		[StringLength(128)]
        public string Attach { get; set; }
        
		/// <summary>
        /// 商户订单号(商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*且在同一个商户号下唯一)
        /// </summary>
		[Display(Name = "商户订单号(商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*且在同一个商户号下唯一)", Description = "商户订单号(商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*且在同一个商户号下唯一)")]
        [Column("OutTradeNo")]
		[StringLength(32)]
        public string OutTradeNo { get; set; }
        
		/// <summary>
        /// 货币类型(符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见)
        /// </summary>
		[Display(Name = "货币类型(符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见)", Description = "货币类型(符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见)")]
        [Column("FeeType")]
		[StringLength(32)]
        public string FeeType { get; set; }
        
		/// <summary>
        /// 总金额
        /// </summary>
		[Display(Name = "总金额", Description = "总金额")]
        [Column("TotalFee")]
        public int? TotalFee { get; set; }
        
		/// <summary>
        /// 终端IP（支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP）
        /// </summary>
		[Display(Name = "终端IP（支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP）", Description = "终端IP（支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP）")]
        [Column("SpbillCreateIp")]
		[StringLength(32)]
        public string SpbillCreateIp { get; set; }
        
		/// <summary>
        /// 交易起始时间(订单生成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010)
        /// </summary>
		[Display(Name = "交易起始时间(订单生成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010)", Description = "交易起始时间(订单生成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010)")]
        [Column("TimeStart")]
		[StringLength(32)]
        public string TimeStart { get; set; }
        
		/// <summary>
        /// 交易结束时间(订单失效时间，格式为yyyyMMddHHmmss，如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的，由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期，所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。)
        /// </summary>
		[Display(Name = "交易结束时间(订单失效时间，格式为yyyyMMddHHmmss，如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的，由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期，所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。)", Description = "交易结束时间(订单失效时间，格式为yyyyMMddHHmmss，如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的，由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期，所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。)")]
        [Column("TimeExpire")]
		[StringLength(32)]
        public string TimeExpire { get; set; }
        
		/// <summary>
        /// 订单优惠标记(订单优惠标记，代金券或立减优惠功能的参数)
        /// </summary>
		[Display(Name = "订单优惠标记(订单优惠标记，代金券或立减优惠功能的参数)", Description = "订单优惠标记(订单优惠标记，代金券或立减优惠功能的参数)")]
        [Column("GoodsTag")]
		[StringLength(32)]
        public string GoodsTag { get; set; }
        
		/// <summary>
        /// 通知地址(接收微信支付异步通知回调地址，通知url必须为直接可访问的url，不能携带参数。)
        /// </summary>
		[Display(Name = "通知地址(接收微信支付异步通知回调地址，通知url必须为直接可访问的url，不能携带参数。)", Description = "通知地址(接收微信支付异步通知回调地址，通知url必须为直接可访问的url，不能携带参数。)")]
        [Column("NotifyUrl")]
		[StringLength(256)]
        public string NotifyUrl { get; set; }
        
		/// <summary>
        /// 交易类型(小程序取值如下：JSAPI，详细说明见)
        /// </summary>
		[Display(Name = "交易类型(小程序取值如下：JSAPI，详细说明见)", Description = "交易类型(小程序取值如下：JSAPI，详细说明见)")]
        [Column("TradeType")]
		[StringLength(32)]
        public string TradeType { get; set; }
        
		/// <summary>
        /// 指定支付方式no_credit--指定不能使用信用卡支付
        /// </summary>
		[Display(Name = "指定支付方式no_credit--指定不能使用信用卡支付", Description = "指定支付方式no_credit--指定不能使用信用卡支付")]
        [Column("LimitPay")]
		[StringLength(32)]
        public string LimitPay { get; set; }
        
		/// <summary>
        /// 用户标识
        /// </summary>
		[Display(Name = "用户标识", Description = "用户标识")]
        [Column("OpenId")]
		[StringLength(32)]
        public string OpenId { get; set; }
        
		/// <summary>
        /// 用户子标识
        /// </summary>
		[Display(Name = "用户子标识", Description = "用户子标识")]
        [Column("SubOpenid")]
		[StringLength(32)]
        public string SubOpenid { get; set; }
        
		/// <summary>
        /// 电子发票入口开放标识（ Y，传入Y时，支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能，传此字段才可生效）
        /// </summary>
		[Display(Name = "电子发票入口开放标识（ Y，传入Y时，支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能，传此字段才可生效）", Description = "电子发票入口开放标识（ Y，传入Y时，支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能，传此字段才可生效）")]
        [Column("Receipt")]
		[StringLength(8)]
        public string Receipt { get; set; }
        
		/// <summary>
        /// 场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）', Description = '场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）
        /// </summary>
		[Display(Name = "场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）', Description = '场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）", Description = "场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）', Description = '场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）")]
        [Column("SceneInfo")]
		[StringLength(256)]
        public string SceneInfo { get; set; }
        
		/// <summary>
        /// 返回状态码
        /// </summary>
		[Display(Name = "返回状态码", Description = "返回状态码")]
        [Column("ReturnCode")]
		[StringLength(32)]
        public string ReturnCode { get; set; }
        
		/// <summary>
        /// 返回信息
        /// </summary>
		[Display(Name = "返回信息", Description = "返回信息")]
        [Column("ReturnMsg")]
		[StringLength(32)]
        public string ReturnMsg { get; set; }
        
		/// <summary>
        /// 预支付交易会话标识（微信生成的预支付回话标识，用于后续接口调用中使用，该值有效期为2小时）
        /// </summary>
		[Display(Name = "预支付交易会话标识（微信生成的预支付回话标识，用于后续接口调用中使用，该值有效期为2小时）", Description = "预支付交易会话标识（微信生成的预支付回话标识，用于后续接口调用中使用，该值有效期为2小时）")]
        [Column("PrepayId")]
		[StringLength(64)]
        public string PrepayId { get; set; }
        
		/// <summary>
        /// 二维码链接（trade_type=NATIVE时有返回，此url用于生成支付二维码，然后提供给用户进行扫码支付。）
        /// </summary>
		[Display(Name = "二维码链接（trade_type=NATIVE时有返回，此url用于生成支付二维码，然后提供给用户进行扫码支付。）", Description = "二维码链接（trade_type=NATIVE时有返回，此url用于生成支付二维码，然后提供给用户进行扫码支付。）")]
        [Column("CodeUrl")]
		[StringLength(64)]
        public string CodeUrl { get; set; }
        
		/// <summary>
        /// 微信订单号
        /// </summary>
		[Display(Name = "微信订单号", Description = "微信订单号")]
        [Column("TransactionId")]
		[StringLength(32)]
        public string TransactionId { get; set; }
        
		/// <summary>
        /// 商户退款单号
        /// </summary>
		[Display(Name = "商户退款单号", Description = "商户退款单号")]
        [Column("OutRefundNo")]
		[StringLength(32)]
        public string OutRefundNo { get; set; }
        
		/// <summary>
        /// 申请退款金额
        /// </summary>
		[Display(Name = "申请退款金额", Description = "申请退款金额")]
        [Column("RefundFee")]
        public int? RefundFee { get; set; }
        
		/// <summary>
        /// 退款原因
        /// </summary>
		[Display(Name = "退款原因", Description = "退款原因")]
        [Column("RefundDesc")]
		[StringLength(80)]
        public string RefundDesc { get; set; }
        
		/// <summary>
        /// 退款资金来源
        /// </summary>
		[Display(Name = "退款资金来源", Description = "退款资金来源")]
        [Column("RefundAccount")]
		[StringLength(80)]
        public string RefundAccount { get; set; }
        
		/// <summary>
        /// 是否关注公众账号
        /// </summary>
		[Display(Name = "是否关注公众账号", Description = "是否关注公众账号")]
        [Column("IsSubscribe")]
		[StringLength(32)]
        public string IsSubscribe { get; set; }
        
		/// <summary>
        /// 是否关注公众账号
        /// </summary>
		[Display(Name = "是否关注公众账号", Description = "是否关注公众账号")]
        [Column("SubIsSubscribe")]
		[StringLength(32)]
        public string SubIsSubscribe { get; set; }
        
		/// <summary>
        /// 微信支付状态 SUCCESS—支付成功 REFUND—转入退 NOTPAY—未支付 CLOSED—已关闭 REVOKED—已撤销（刷卡支付） USERPAYING--用户支付中 PAYERROR--支付失败(其他原因，如银行返回失败)
        /// </summary>
		[Display(Name = "微信支付状态 SUCCESS—支付成功 REFUND—转入退 NOTPAY—未支付 CLOSED—已关闭 REVOKED—已撤销（刷卡支付） USERPAYING--用户支付中 PAYERROR--支付失败(其他原因，如银行返回失败)", Description = "微信支付状态 SUCCESS—支付成功 REFUND—转入退 NOTPAY—未支付 CLOSED—已关闭 REVOKED—已撤销（刷卡支付） USERPAYING--用户支付中 PAYERROR--支付失败(其他原因，如银行返回失败)")]
        [Column("TradeState")]
		[StringLength(32)]
        public string TradeState { get; set; }
        
		/// <summary>
        /// 支付状态(1,未支付;2,支付成功;3,支付失败;4,关闭;5,退款)
        /// </summary>
		[Display(Name = "支付状态(1,未支付;2,支付成功;3,支付失败;4,关闭;5,退款)", Description = "支付状态(1,未支付;2,支付成功;3,支付失败;4,关闭;5,退款)")]
        [Column("PayOrderState")]
        public WXPayOrderPayOrderStateEnum? PayOrderState { get; set; }
        
		/// <summary>
        /// 支付失败消息
        /// </summary>
		[Display(Name = "支付失败消息", Description = "支付失败消息")]
        [Column("PayOrderError")]
		[StringLength(1024)]
        public string PayOrderError { get; set; }
        
    }
     
     /// <summary>
    /// 微信支付订单表更新时候Dto
    /// </summary>
	[AutoMap(typeof(WXPayOrderEntity))]
    [AutoMapFrom(typeof(ViewWXPayOrder))] 
    public partial class WXPayOrderUpdateInputDto : BaseEntityDto<Guid>
    {
		/// <summary>
        /// 微信分配的公众账号ID(wxd678efh567hg6787)
        /// </summary>
		[Display(Name = "微信分配的公众账号ID(wxd678efh567hg6787)", Description = "微信分配的公众账号ID(wxd678efh567hg6787)")]
        [Column("AppId")]
		[StringLength(32)]
        public string AppId { get; set; }
        
		/// <summary>
        /// 微信支付分配的商户号(1230000109)
        /// </summary>
		[Display(Name = "微信支付分配的商户号(1230000109)", Description = "微信支付分配的商户号(1230000109)")]
        [Column("MchId")]
		[StringLength(32)]
        public string MchId { get; set; }
        
		/// <summary>
        /// 小程序的APPID
        /// </summary>
		[Display(Name = "小程序的APPID", Description = "小程序的APPID")]
        [Column("SubAppId")]
		[StringLength(32)]
        public string SubAppId { get; set; }
        
		/// <summary>
        /// 子商户号(微信支付分配的子商户号)
        /// </summary>
		[Display(Name = "子商户号(微信支付分配的子商户号)", Description = "子商户号(微信支付分配的子商户号)")]
        [Column("SubMchId")]
		[StringLength(32)]
        public string SubMchId { get; set; }
        
		/// <summary>
        /// 设备号(终端设备号(门店号或收银设备ID)，注意：PC网页或公众号内支付请传'WEB')
        /// </summary>
		[Display(Name = "设备号(终端设备号(门店号或收银设备ID)，注意：PC网页或公众号内支付请传'WEB')", Description = "设备号(终端设备号(门店号或收银设备ID)，注意：PC网页或公众号内支付请传'WEB')")]
        [Column("DeviceInfo")]
		[StringLength(32)]
        public string DeviceInfo { get; set; }
        
		/// <summary>
        /// 随机字符串(随机字符串，不长于32位)
        /// </summary>
		[Display(Name = "随机字符串(随机字符串，不长于32位)", Description = "随机字符串(随机字符串，不长于32位)")]
        [Column("NonceStr")]
		[StringLength(32)]
        public string NonceStr { get; set; }
        
		/// <summary>
        /// 签名()
        /// </summary>
		[Display(Name = "签名()", Description = "签名()")]
        [Column("Sign")]
		[StringLength(32)]
        public string Sign { get; set; }
        
		/// <summary>
        /// 签名类型（签名类型，目前支持HMAC-SHA256和MD5，默认为MD5）
        /// </summary>
		[Display(Name = "签名类型（签名类型，目前支持HMAC-SHA256和MD5，默认为MD5）", Description = "签名类型（签名类型，目前支持HMAC-SHA256和MD5，默认为MD5）")]
        [Column("SignType")]
		[StringLength(32)]
        public string SignType { get; set; }
        
		/// <summary>
        /// 商品描述（商品简单描述，该字段须严格按照规范传递）
        /// </summary>
		[Display(Name = "商品描述（商品简单描述，该字段须严格按照规范传递）", Description = "商品描述（商品简单描述，该字段须严格按照规范传递）")]
        [Column("Body")]
		[StringLength(128)]
        public string Body { get; set; }
        
		/// <summary>
        /// 商品详情(商品详细描述，对于使用单品优惠的商户，该字段必须按照规范上传，详见)
        /// </summary>
		[Display(Name = "商品详情(商品详细描述，对于使用单品优惠的商户，该字段必须按照规范上传，详见)", Description = "商品详情(商品详细描述，对于使用单品优惠的商户，该字段必须按照规范上传，详见)")]
        [Column("Detail")]
		[StringLength(4000)]
        public string Detail { get; set; }
        
		/// <summary>
        /// 附加数据(附加数据，在查询API和支付通知中原样返回，该字段主要用于商户携带订单的自定义数据)
        /// </summary>
		[Display(Name = "附加数据(附加数据，在查询API和支付通知中原样返回，该字段主要用于商户携带订单的自定义数据)", Description = "附加数据(附加数据，在查询API和支付通知中原样返回，该字段主要用于商户携带订单的自定义数据)")]
        [Column("Attach")]
		[StringLength(128)]
        public string Attach { get; set; }
        
		/// <summary>
        /// 商户订单号(商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*且在同一个商户号下唯一)
        /// </summary>
		[Display(Name = "商户订单号(商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*且在同一个商户号下唯一)", Description = "商户订单号(商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*且在同一个商户号下唯一)")]
        [Column("OutTradeNo")]
		[StringLength(32)]
        public string OutTradeNo { get; set; }
        
		/// <summary>
        /// 货币类型(符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见)
        /// </summary>
		[Display(Name = "货币类型(符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见)", Description = "货币类型(符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见)")]
        [Column("FeeType")]
		[StringLength(32)]
        public string FeeType { get; set; }
        
		/// <summary>
        /// 总金额
        /// </summary>
		[Display(Name = "总金额", Description = "总金额")]
        [Column("TotalFee")]
        public int? TotalFee { get; set; }
        
		/// <summary>
        /// 终端IP（支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP）
        /// </summary>
		[Display(Name = "终端IP（支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP）", Description = "终端IP（支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP）")]
        [Column("SpbillCreateIp")]
		[StringLength(32)]
        public string SpbillCreateIp { get; set; }
        
		/// <summary>
        /// 交易起始时间(订单生成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010)
        /// </summary>
		[Display(Name = "交易起始时间(订单生成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010)", Description = "交易起始时间(订单生成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010)")]
        [Column("TimeStart")]
		[StringLength(32)]
        public string TimeStart { get; set; }
        
		/// <summary>
        /// 交易结束时间(订单失效时间，格式为yyyyMMddHHmmss，如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的，由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期，所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。)
        /// </summary>
		[Display(Name = "交易结束时间(订单失效时间，格式为yyyyMMddHHmmss，如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的，由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期，所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。)", Description = "交易结束时间(订单失效时间，格式为yyyyMMddHHmmss，如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的，由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期，所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。)")]
        [Column("TimeExpire")]
		[StringLength(32)]
        public string TimeExpire { get; set; }
        
		/// <summary>
        /// 订单优惠标记(订单优惠标记，代金券或立减优惠功能的参数)
        /// </summary>
		[Display(Name = "订单优惠标记(订单优惠标记，代金券或立减优惠功能的参数)", Description = "订单优惠标记(订单优惠标记，代金券或立减优惠功能的参数)")]
        [Column("GoodsTag")]
		[StringLength(32)]
        public string GoodsTag { get; set; }
        
		/// <summary>
        /// 通知地址(接收微信支付异步通知回调地址，通知url必须为直接可访问的url，不能携带参数。)
        /// </summary>
		[Display(Name = "通知地址(接收微信支付异步通知回调地址，通知url必须为直接可访问的url，不能携带参数。)", Description = "通知地址(接收微信支付异步通知回调地址，通知url必须为直接可访问的url，不能携带参数。)")]
        [Column("NotifyUrl")]
		[StringLength(256)]
        public string NotifyUrl { get; set; }
        
		/// <summary>
        /// 交易类型(小程序取值如下：JSAPI，详细说明见)
        /// </summary>
		[Display(Name = "交易类型(小程序取值如下：JSAPI，详细说明见)", Description = "交易类型(小程序取值如下：JSAPI，详细说明见)")]
        [Column("TradeType")]
		[StringLength(32)]
        public string TradeType { get; set; }
        
		/// <summary>
        /// 指定支付方式no_credit--指定不能使用信用卡支付
        /// </summary>
		[Display(Name = "指定支付方式no_credit--指定不能使用信用卡支付", Description = "指定支付方式no_credit--指定不能使用信用卡支付")]
        [Column("LimitPay")]
		[StringLength(32)]
        public string LimitPay { get; set; }
        
		/// <summary>
        /// 用户标识
        /// </summary>
		[Display(Name = "用户标识", Description = "用户标识")]
        [Column("OpenId")]
		[StringLength(32)]
        public string OpenId { get; set; }
        
		/// <summary>
        /// 用户子标识
        /// </summary>
		[Display(Name = "用户子标识", Description = "用户子标识")]
        [Column("SubOpenid")]
		[StringLength(32)]
        public string SubOpenid { get; set; }
        
		/// <summary>
        /// 电子发票入口开放标识（ Y，传入Y时，支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能，传此字段才可生效）
        /// </summary>
		[Display(Name = "电子发票入口开放标识（ Y，传入Y时，支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能，传此字段才可生效）", Description = "电子发票入口开放标识（ Y，传入Y时，支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能，传此字段才可生效）")]
        [Column("Receipt")]
		[StringLength(8)]
        public string Receipt { get; set; }
        
		/// <summary>
        /// 场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）', Description = '场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）
        /// </summary>
		[Display(Name = "场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）', Description = '场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）", Description = "场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）', Description = '场景信息（该字段常用于线下活动时的场景信息上报，支持上报实际门店信息，商户也可以按需求自己上报相关信息。该字段为JSON对象数据，对象格式为{'store_info':{'id': '门店ID','name': '名称','area_code': '编码','address': '地址' }} ，字段详细说明请点击行前的+展开）")]
        [Column("SceneInfo")]
		[StringLength(256)]
        public string SceneInfo { get; set; }
        
		/// <summary>
        /// 返回状态码
        /// </summary>
		[Display(Name = "返回状态码", Description = "返回状态码")]
        [Column("ReturnCode")]
		[StringLength(32)]
        public string ReturnCode { get; set; }
        
		/// <summary>
        /// 返回信息
        /// </summary>
		[Display(Name = "返回信息", Description = "返回信息")]
        [Column("ReturnMsg")]
		[StringLength(32)]
        public string ReturnMsg { get; set; }
        
		/// <summary>
        /// 预支付交易会话标识（微信生成的预支付回话标识，用于后续接口调用中使用，该值有效期为2小时）
        /// </summary>
		[Display(Name = "预支付交易会话标识（微信生成的预支付回话标识，用于后续接口调用中使用，该值有效期为2小时）", Description = "预支付交易会话标识（微信生成的预支付回话标识，用于后续接口调用中使用，该值有效期为2小时）")]
        [Column("PrepayId")]
		[StringLength(64)]
        public string PrepayId { get; set; }
        
		/// <summary>
        /// 二维码链接（trade_type=NATIVE时有返回，此url用于生成支付二维码，然后提供给用户进行扫码支付。）
        /// </summary>
		[Display(Name = "二维码链接（trade_type=NATIVE时有返回，此url用于生成支付二维码，然后提供给用户进行扫码支付。）", Description = "二维码链接（trade_type=NATIVE时有返回，此url用于生成支付二维码，然后提供给用户进行扫码支付。）")]
        [Column("CodeUrl")]
		[StringLength(64)]
        public string CodeUrl { get; set; }
        
		/// <summary>
        /// 微信订单号
        /// </summary>
		[Display(Name = "微信订单号", Description = "微信订单号")]
        [Column("TransactionId")]
		[StringLength(32)]
        public string TransactionId { get; set; }
        
		/// <summary>
        /// 商户退款单号
        /// </summary>
		[Display(Name = "商户退款单号", Description = "商户退款单号")]
        [Column("OutRefundNo")]
		[StringLength(32)]
        public string OutRefundNo { get; set; }
        
		/// <summary>
        /// 申请退款金额
        /// </summary>
		[Display(Name = "申请退款金额", Description = "申请退款金额")]
        [Column("RefundFee")]
        public int? RefundFee { get; set; }
        
		/// <summary>
        /// 退款原因
        /// </summary>
		[Display(Name = "退款原因", Description = "退款原因")]
        [Column("RefundDesc")]
		[StringLength(80)]
        public string RefundDesc { get; set; }
        
		/// <summary>
        /// 退款资金来源
        /// </summary>
		[Display(Name = "退款资金来源", Description = "退款资金来源")]
        [Column("RefundAccount")]
		[StringLength(80)]
        public string RefundAccount { get; set; }
        
		/// <summary>
        /// 是否关注公众账号
        /// </summary>
		[Display(Name = "是否关注公众账号", Description = "是否关注公众账号")]
        [Column("IsSubscribe")]
		[StringLength(32)]
        public string IsSubscribe { get; set; }
        
		/// <summary>
        /// 是否关注公众账号
        /// </summary>
		[Display(Name = "是否关注公众账号", Description = "是否关注公众账号")]
        [Column("SubIsSubscribe")]
		[StringLength(32)]
        public string SubIsSubscribe { get; set; }
        
		/// <summary>
        /// 微信支付状态 SUCCESS—支付成功 REFUND—转入退 NOTPAY—未支付 CLOSED—已关闭 REVOKED—已撤销（刷卡支付） USERPAYING--用户支付中 PAYERROR--支付失败(其他原因，如银行返回失败)
        /// </summary>
		[Display(Name = "微信支付状态 SUCCESS—支付成功 REFUND—转入退 NOTPAY—未支付 CLOSED—已关闭 REVOKED—已撤销（刷卡支付） USERPAYING--用户支付中 PAYERROR--支付失败(其他原因，如银行返回失败)", Description = "微信支付状态 SUCCESS—支付成功 REFUND—转入退 NOTPAY—未支付 CLOSED—已关闭 REVOKED—已撤销（刷卡支付） USERPAYING--用户支付中 PAYERROR--支付失败(其他原因，如银行返回失败)")]
        [Column("TradeState")]
		[StringLength(32)]
        public string TradeState { get; set; }
        
		/// <summary>
        /// 支付状态(1,未支付;2,支付成功;3,支付失败;4,关闭;5,退款)
        /// </summary>
		[Display(Name = "支付状态(1,未支付;2,支付成功;3,支付失败;4,关闭;5,退款)", Description = "支付状态(1,未支付;2,支付成功;3,支付失败;4,关闭;5,退款)")]
        [Column("PayOrderState")]
        public WXPayOrderPayOrderStateEnum? PayOrderState { get; set; }
        
		/// <summary>
        /// 支付失败消息
        /// </summary>
		[Display(Name = "支付失败消息", Description = "支付失败消息")]
        [Column("PayOrderError")]
		[StringLength(1024)]
        public string PayOrderError { get; set; }
        
    }
}
